home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-13 / thesrc10.zip / DIRECTRY.H < prev    next >
C/C++ Source or Header  |  1992-08-11  |  4KB  |  154 lines

  1. #if defined(DOS) && defined(TC)
  2.  
  3. #define F_RO FA_RDONLY
  4. #define F_HI FA_HIDDEN
  5. #define F_SY FA_SYSTEM
  6. #define F_DI FA_DIREC
  7. #define F_AR FA_ARCH
  8.  
  9. #define FSTR_TYPE struct ffblk
  10.  
  11. #define ATTR_TYPE char
  12. #define DATE_TYPE int
  13. #define TIME_TYPE int
  14. #define SIZE_TYPE long
  15. #define D_TYPE    DATE_TYPE
  16. #define T_TYPE    TIME_TYPE
  17. #define DONE_TYPE int
  18.  
  19. #define ATTR_NAME ff_attrib
  20. #define DATE_NAME ff_fdate
  21. #define TIME_NAME ff_ftime
  22. #define SIZE_NAME ff_fsize
  23. #define NAME_NAME ff_name
  24. #define D_NAME    dp->fdate
  25. #define T_NAME    dp->ftime
  26.  
  27. #define HOUR_MASK ((time & 0xf800) >> 11)
  28. #define MINU_MASK ((time & 0x07e0) >> 5)
  29. #define DAYS_MASK (date & 0x001f)
  30. #define MONT_MASK (mon[((date & 0x01e0) >> 5)-1])
  31. #define YEAR_MASK (((date & 0xfe00) >> 9)+80)
  32.  
  33. #endif
  34.  
  35. #if defined(DOS) && defined(MSC)
  36. #include <dos.h>
  37. #define F_RO _A_RDONLY
  38. #define F_HI _A_HIDDEN
  39. #define F_SY _A_SYSTEM
  40. #define F_DI _A_SUBDIR
  41. #define F_AR _A_ARCH
  42.  
  43. #define FSTR_TYPE struct find_t
  44.  
  45. #define ATTR_TYPE char
  46. #define DATE_TYPE unsigned int
  47. #define TIME_TYPE unsigned int
  48. #define SIZE_TYPE long
  49. #define D_TYPE    DATE_TYPE
  50. #define T_TYPE    TIME_TYPE
  51. #define DONE_TYPE int
  52.  
  53. #define ATTR_NAME attrib
  54. #define DATE_NAME wr_date
  55. #define TIME_NAME wr_time
  56. #define SIZE_NAME size
  57. #define NAME_NAME name
  58. #define D_NAME    dp->fdate
  59. #define T_NAME    dp->ftime
  60.  
  61. #define HOUR_MASK ((time & 0xf800) >> 11)
  62. #define MINU_MASK ((time & 0x07e0) >> 5)
  63. #define DAYS_MASK (date & 0x001f)
  64. #define MONT_MASK (mon[((date & 0x01e0) >> 5)-1])
  65. #define YEAR_MASK (((date & 0xfe00) >> 9)+80)
  66.  
  67. #endif
  68.  
  69. #ifdef OS2
  70.  
  71. /*typedef FDATE FAR *PFDATE;*/
  72. /*typedef FDATE *PFDATE;*/
  73.  
  74. #define F_RO FILE_READONLY
  75. #define F_HI FILE_HIDDEN
  76. #define F_SY FILE_SYSTEM
  77. #define F_DI FILE_DIRECTORY
  78. #define F_AR FILE_ARCHIVED
  79.  
  80. #define FSTR_TYPE FILEFINDBUF
  81.  
  82. #define ATTR_TYPE USHORT
  83. #define DATE_TYPE FDATE
  84. #define TIME_TYPE FTIME
  85. #define SIZE_TYPE ULONG
  86. #define D_TYPE    DATE_TYPE
  87. #define T_TYPE    TIME_TYPE
  88. #define DONE_TYPE USHORT
  89.  
  90. #define ATTR_NAME attrFile
  91. #define DATE_NAME fdateLastWrite
  92. #define TIME_NAME ftimeLastWrite
  93. #define SIZE_NAME cbFile
  94. #define NAME_NAME achName
  95. #define D_NAME    dp->fdate
  96. #define T_NAME    dp->ftime
  97.  
  98. #define HOUR_MASK (time.hours)
  99. #define MINU_MASK (time.minutes)
  100. #define DAYS_MASK (date.day)
  101. #define MONT_MASK (mon[date.month-1])
  102. #define YEAR_MASK (date.year+80)
  103.  
  104. #endif
  105.  
  106. #ifdef UNIX
  107. #include <dirent.h>
  108. #include <sys/types.h>
  109. #include <sys/stat.h>
  110. #include <time.h>
  111.  
  112. #define ATTR_TYPE mode_t
  113. #define SIZE_TYPE long
  114. #define TIME_TYPE time_t
  115. #define DATE_TYPE char
  116. #define D_TYPE    struct tm *
  117. #define T_TYPE    struct tm *
  118. #define DONE_TYPE int
  119.  
  120. #define D_NAME    timp
  121. #define T_NAME    timp
  122.  
  123. #define HOUR_MASK (time->tm_hour)
  124. #define MINU_MASK (time->tm_min)
  125. #define DAYS_MASK (date->tm_mday)
  126. #define MONT_MASK (mon[date->tm_mon])
  127. #define YEAR_MASK (date->tm_year)
  128.  
  129. #endif
  130.  
  131. struct dirfile {
  132.     char    *fname;        /* file name */
  133.     ATTR_TYPE    fattr;        /* file attributes */
  134.     SIZE_TYPE    fsize;        /* size of file */
  135.     TIME_TYPE    ftime;        /* time (last write) */
  136.     DATE_TYPE    fdate;        /* date (if seperate to time) */
  137. };
  138.  
  139. #ifdef PROTO
  140. int fcomp();
  141. char *make_full(char *,char *);
  142. int getfiles(char *,char *,struct dirfile **,struct dirfile **);
  143. char *file_attrs(ATTR_TYPE,char *);
  144. char *file_date(D_TYPE,char *);
  145. char *file_time(T_TYPE,char *);
  146. #else
  147. int fcomp();
  148. char *make_full();
  149. int getfiles();
  150. char *file_attrs();
  151. char *file_date();
  152. char *file_time();
  153. #endif
  154.